package com.sheng.leetcode.year2022.month08.day26;

import org.junit.Test;

/**
 * @author liusheng
 * @date 2022/08/26
 *
 * 7. 整数反转
 *
 * 给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。
 * 如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ，就返回 0。
 * 假设环境不允许存储 64 位整数（有符号或无符号）。
 *
 * 示例 1：
 * 输入：x = 123
 * 输出：321
 *
 * 示例 2：
 * 输入：x = -123
 * 输出：-321
 *
 * 示例 3：
 * 输入：x = 120
 * 输出：21
 *
 * 示例 4：
 * 输入：x = 0
 * 输出：0
 *
 * 提示：
 *
 * -231 <= x <= 231 - 1
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/reverse-integer
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class LeetCode0007 {

    @Test
    public void test01() {
        int x = 123;
//        int x = -123;
//        int x = 120;
//        int x = 0;
//        int x = 1534236469;
        System.out.println(new Solution7().reverse(x));
    }
}
class Solution7 {
    public int reverse(int x) {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(Math.abs(x));
        try {
            if (x < 0) {
                return -Integer.parseInt(stringBuilder.reverse().toString());
            } else {
                return Integer.parseInt(stringBuilder.reverse().toString());
            }
        } catch (Exception e) {
            return 0;
        }
    }
}
